﻿using VisualWip.Core;
using VisualWip.Core.Columns;
using VisualWip.Core.Interfaces;

namespace VisualWip.PresentationModel
{
    public interface IColumnBuilder
    {
        void Build<TColumn>()
            where TColumn : Column;

        void BuildWorkItemProviderColumn<TColumn>(string providerName)
            where TColumn : Column, IWorkItemProviderColumn;

        ISettingsWindow OpenSettings<TModel>(TModel model);
        void AddColumn(Column column, bool autoSetPosition);
        
        TColumn CreateColumn<TColumn>() where TColumn : Column;
        TColumn CreateWorkItemProviderColumn<TColumn>(string providerName)
            where TColumn : Column, IWorkItemProviderColumn;
    }
}